const bodyParser = require('body-parser')
const fs = require('fs')
const path = require('path')
module.exports = {
    devServer: {
        before(app) {
            app.use(bodyParser.json())
            app.use(bodyParser.urlencoded({extended: true}))
            //获取数据
            app.get('/index/page', (req, res) => {
                const { type } = req.query
                if(type === 'java') {
                    res.send({
                        code: 1,
                        data: javaData
                    })
                } else {
                    res.send({
                        code: 1,
                        data: frontData
                    })
                }
            })
            //注册账号
            app.post('/register', (req, res) => {
                const { phone, password } = req.body
                console.log(phone, password)
                // 注册
                let userData = fs.readFileSync(path.join(__dirname, 'src/data/user.json')).toString()
                userData = userData ? JSON.parse(userData) : []

                // 先判断手机号是否被占用
                if(userData.some(item => item.phone == phone)) {
                    // 代表已经注册过了
                    res.send({
                        code: 0,
                        msg: '手机号已被注册'
                    })
                } else {
                    // 没有注册过
                    userData.push({
                        phone,
                        password
                    })
                    fs.writeFileSync(path.join(__dirname, 'src/data/user.json'), JSON.stringify(userData))
                    res.send({
                        code: 1,
                        msg: '注册成功'
                    })
                }
            })
            //登陆账号
            app.post('/login', (req, res) => {
                const { phone, password } = req.body
                let userData = fs.readFileSync(path.join(__dirname, 'src/data/user.json')).toString()
                userData = userData ? JSON.parse(userData) : []

                if(userData.some(item => item.phone == phone && item.password == password)) {
                    res.send({
                        code: 1,
                        msg: '登陆成功'
                    })
                } else{
                    res.send({
                        code: 0,
                        msg: '登录失败'
                    })
                }
            })
            //话题数据
            app.post('/TopicData',(req,res)=>{
                
                let userData = fs.readFileSync(path.join(__dirname, 'src/data/topicData.json')).toString()
                userData = userData ? JSON.parse(userData) : []
                res.send({
                    code: 1,
                    msg: userData
                })
            })
            //点击关注事件
            app.post('/addAttention',(req,res)=>{
                //看看参数 {user:this.user,key} 传过来没有
                const { user, key ,id} = req.body

                //获取全部话题数据
                let userData = fs.readFileSync(path.join(__dirname, 'src/data/topicData.json')).toString()
                userData = userData ? JSON.parse(userData) : []

                //获取关注的话题数据
                let addAttentionData = fs.readFileSync(path.join(__dirname, 'src/data/attention.json')).toString()
                addAttentionData = addAttentionData ? JSON.parse(addAttentionData) : []

                //通过下标[key]来判断点击的是哪一个数据

                //给点击的数据加一个字段 用来判断是哪个用户点击的关注
                userData[key].user=user

                //判断关注的话题数据里面有没有数据 如果没有 就push  如果有那就删除
                let arr = addAttentionData.find(item=>item.topic_id==id&&item.user==user)
                if(arr){
                    //说明里面有 做删除操作
                    addAttentionData.map((item,index)=>{
                        if(item.topic_id==id&&item.user==user){
                            //说明找到了
                            addAttentionData.splice(index,1)
                            fs.writeFileSync(path.join(__dirname, 'src/data/attention.json'), JSON.stringify(addAttentionData))
                            res.send({
                                code: 0,
                                msg: addAttentionData
                            })
                        }
                    })
                }else{
                    //说明没有 push进去
                    addAttentionData.push(userData[key])
                    fs.writeFileSync(path.join(__dirname, 'src/data/attention.json'), JSON.stringify(addAttentionData))
                    res.send({
                        code: 1,
                        msg: addAttentionData
                    })
                }
            })
            //获取关注话题的列表
            app.post('/getAttention',(req,res)=>{
                //获取关注的话题数据
                let addAttentionData = fs.readFileSync(path.join(__dirname, 'src/data/attention.json')).toString()
                addAttentionData = addAttentionData ? JSON.parse(addAttentionData) : []
                res.send({
                    code: 0,
                    msg: addAttentionData
                })
            })
            //获取标签数据
            app.post('/getLabel',(req,res)=>{
                const { name} = req.body
                //最热数据
                let labelR = fs.readFileSync(path.join(__dirname, 'src/data/label_r.json')).toString()
                labelR = labelR ? JSON.parse(labelR) : []
                //最新数据
                let labelX = fs.readFileSync(path.join(__dirname, 'src/data/label_x.json')).toString()
                labelX = labelX ? JSON.parse(labelX) : []

                if(name=='最新'){
                    res.send({
                        code: 0,
                        msg: labelX
                    })
                }else{
                    res.send({
                        code: 0,
                        msg: labelR
                    })
                }
                
            })
            //标签管理关注
            app.post('/addLabel', (req, res) => {
                const {user,item} = req.body
                //最热
                let labelR = fs.readFileSync(path.join(__dirname, 'src/data/label_r.json')).toString()
                labelR = labelR ? JSON.parse(labelR) : []
                //最新
                let labelX = fs.readFileSync(path.join(__dirname, 'src/data/label_x.json')).toString()
                labelX = labelX ? JSON.parse(labelX) : []
                //添加用户字段
                item.user = user
                //已关注的标签
                let userLabel = fs.readFileSync(path.join(__dirname, 'src/data/user_label.json')).toString()
                userLabel = userLabel ? JSON.parse(userLabel) : []

                let labelList = userLabel.find(ite => ite.tag_id == item.tag_id && ite.user == user)
                if (labelList) {
                    userLabel.map((ite, index) => {
                        if (ite.tag_id == item.tag_id && ite.user == user) {
                            userLabel.splice(index, 1)
                        }
                        fs.writeFileSync(path.join(__dirname, 'src/data/user_label.json'), JSON.stringify(userLabel))
                    })
                } else {
                    userLabel.push(item)
                    fs.writeFileSync(path.join(__dirname, 'src/data/user_label.json'), JSON.stringify(userLabel))
                   
                }
                res.send({
                    code: 1,
                })
            })
           //标签管理已关注
            app.post('/getUserLabel',(req,res)=>{
                let userLabel = fs.readFileSync(path.join(__dirname, 'src/data/user_label.json')).toString()
                userLabel = userLabel ? JSON.parse(userLabel) : []
                res.send({
                    code: 0,
                    data:userLabel
                })

            })
            //
            
        },
        
    }
}